iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0

前言

說是要關心,那要怎麼關心呢?我想這個問題可以分兩個層面來看,觀察他靜態時的樣子也關心他動態的樣子。更甚者,找人一起關心。

靜態程式碼分析

一般來說,我想你當然希望自己該有的有、該直的直、該彎的彎、該挺的挺、該大的大,咳咳,離題了 (笑)

所以說首先就是 Coding Style,像是什麼 checkstyle 啦,xxlint 都算。

這個通常會縫合在特定時間點執行如 project package or git commit hook。

然後像是大公司會有公開自己的 checkstyle 範本,很多人都是拿大公司的回來改一改變自己的。

第二部分是分析你的程式碼寫法,看看有沒有可能存在缺陷,例如 PMD 和 FindBugs。

另外比較特別想介紹的是一個叫做 SonarQube,這是一個程式碼品質管理系統。

會跟你的 SCM (Source Code Management) 還有 CI (Continuous Integration) 整合在一起,無論是事先檢測缺陷或是事後檢視報表,這個無疑是一個持續提高專案程式碼品質的利器。

動態指標檢視

別的不說,最少最少對於已知會印出錯誤日誌的地方,我們需要檢視及除錯,這個可以參考https://ithelp.ithome.com.tw/articles/10218136。

第二部分是運行期間的指標,看看 CPU 會不會過高或是有不正常峰值的出現,記憶體的佔用與GC的狀況,執行緒的數量及有沒有死結的產生。

分布式系統的指標監控我們會在後面講到,這個也是目前 DevOps 火熱的議題。

不過以 Java 單體應用程式來說,你可以透過 jConsole 或是 Java Visual VM 這些工具來看本地的程序,如果是遠程的你要用 JMX 協議來連線。

下面是 jConsole 的截圖
jconsole1
jconsole2
jconsole3

大家來關心

就是一不小心就會吵架的 code review 啦,哈哈。多半現在都有整合在 SCM 裡頭,像 GitHub 發 PR,GitLab 發 MR 都有 code review & request change 的過程。

只能說畢竟還是有程式檢查不出來的東西,而且畢竟是人的團隊,有些規則也許是跳脫常理但需要遵守的 (笑)

Agile 裡頭有一個 Pair Programming 跟這個有關,也是一個酷炫的東西。

最後提一下,前陣子有人翻譯 Google 是如何進行 Code Review 的文章,這邊放上https://medium.com/@ryanyang1221/%E8%AE%93-google-%E6%95%99%E4%BD%A0-code-review-be251d4d81b4。

今天是第十一天,不知不覺也過1/3了,加油加油。


About Me

Jian-Min Huang

wide range skill set backend engineer

Research, Architecture, Coding, DB, Ops, Infra.

mainly write Java but also ❤️ Scala, Kotlin and Go

http://github.jianminhuang.cc

http://linkedin.jianminhuang.cc

http://note.jianminhuang.cc

yfr.huang@hotmail.com


上一篇
設定檔與日誌這件小事 下
下一篇
自己測自己,別人不管你
系列文
後端攻城獅的實戰筆記 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言